zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
take: {1, 2}
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
take: {1, 2}
The CSR is orthogonal. By [10] we can switch to innermost.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros: empty set
cons: {1}
0: empty set
and: {1}
tt: empty set
length: {1}
nil: empty set
s: {1}
take: {1, 2}
Innermost Strategy.
Using Improved CS-DPs we result in the following initial Q-CSDP problem.
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
LENGTH(cons(N, L)) → LENGTH(L)
AND(tt, X) → X
LENGTH(cons(N, L)) → L
zeros
take(M, IL)
take on positions {1, 2}
AND(tt, X) → U(X)
LENGTH(cons(N, L)) → U(L)
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
U(zeros) → ZEROS
U(take(M, IL)) → TAKE(M, IL)
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDPSubtermProof
↳ QCSDP
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U(take(x_0, x_1)) → U(x_0)
U(take(x_0, x_1)) → U(x_1)
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDPSubtermProof
↳ QCSDP
↳ PIsEmptyProof
↳ QCSDP
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
LENGTH(cons(N, L)) → LENGTH(L)
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
and(tt, x0)
length(nil)
length(cons(x0, x1))
take(0, x0)
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ CSR
↳ CSDependencyPairsProof
↳ QCSDP
↳ QCSDependencyGraphProof
↳ AND
↳ QCSDP
↳ QCSDP
↳ ConvertedToQDPProblemProof
↳ QDP
↳ NonTerminationProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
LENGTH(cons(N, L)) → LENGTH(L)
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
LENGTH(cons(N, L)) → LENGTH(L)
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ Trivial-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
andActive(tt, X) → mark(X)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(0, IL) → nil
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
andActive(tt, X) → mark(X)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(0, IL) → nil
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
Used ordering:
andActive(tt, X) → mark(X)
POL(0) = 0
POL(and(x1, x2)) = 2·x1 + x2
POL(andActive(x1, x2)) = 2·x1 + x2
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = 2·x1
POL(lengthActive(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = x1 + x2
POL(takeActive(x1, x2)) = x1 + x2
POL(tt) = 2
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Trivial-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(0, IL) → nil
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(0, IL) → nil
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
Used ordering:
takeActive(0, IL) → nil
POL(0) = 0
POL(and(x1, x2)) = x1 + 2·x2
POL(andActive(x1, x2)) = x1 + 2·x2
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = x1
POL(lengthActive(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = 2 + x1 + 2·x2
POL(takeActive(x1, x2)) = 2 + x1 + 2·x2
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ Trivial-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(nil) → 0
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
Used ordering:
lengthActive(nil) → 0
POL(0) = 0
POL(and(x1, x2)) = 2·x1 + x2
POL(andActive(x1, x2)) = 2·x1 + x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(lengthActive(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nil) = 1
POL(s(x1)) = 2·x1
POL(take(x1, x2)) = x1 + x2
POL(takeActive(x1, x2)) = x1 + x2
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ Trivial-Transformation
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
LENGTHACTIVE(cons(N, L)) → MARK(L)
MARK(length(x1)) → LENGTHACTIVE(mark(x1))
MARK(take(x1, x2)) → MARK(x2)
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
TAKEACTIVE(s(M), cons(N, IL)) → MARK(N)
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → TAKEACTIVE(mark(x1), mark(x2))
MARK(zeros) → ZEROSACTIVE
MARK(and(x1, x2)) → ANDACTIVE(mark(x1), x2)
MARK(length(x1)) → MARK(x1)
MARK(and(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → MARK(x1)
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(N, L)) → MARK(L)
MARK(length(x1)) → LENGTHACTIVE(mark(x1))
MARK(take(x1, x2)) → MARK(x2)
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
TAKEACTIVE(s(M), cons(N, IL)) → MARK(N)
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → TAKEACTIVE(mark(x1), mark(x2))
MARK(zeros) → ZEROSACTIVE
MARK(and(x1, x2)) → ANDACTIVE(mark(x1), x2)
MARK(length(x1)) → MARK(x1)
MARK(and(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → MARK(x1)
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(N, L)) → MARK(L)
MARK(take(x1, x2)) → MARK(x2)
MARK(length(x1)) → MARK(x1)
MARK(length(x1)) → LENGTHACTIVE(mark(x1))
TAKEACTIVE(s(M), cons(N, IL)) → MARK(N)
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
MARK(s(x1)) → MARK(x1)
MARK(and(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → TAKEACTIVE(mark(x1), mark(x2))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(take(x1, x2)) → MARK(x2)
TAKEACTIVE(s(M), cons(N, IL)) → MARK(N)
MARK(and(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → MARK(x1)
Used ordering: Polynomial interpretation [25]:
LENGTHACTIVE(cons(N, L)) → MARK(L)
MARK(length(x1)) → MARK(x1)
MARK(length(x1)) → LENGTHACTIVE(mark(x1))
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → TAKEACTIVE(mark(x1), mark(x2))
POL(0) = 0
POL(LENGTHACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(TAKEACTIVE(x1, x2)) = 1 + x2
POL(and(x1, x2)) = 1 + x1
POL(andActive(x1, x2)) = 1 + x1
POL(cons(x1, x2)) = x1 + x2
POL(length(x1)) = x1
POL(lengthActive(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = 1 + x1 + x2
POL(takeActive(x1, x2)) = 1 + x1 + x2
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
mark(s(x1)) → s(mark(x1))
mark(nil) → nil
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
zerosActive → cons(0, zeros)
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
mark(0) → 0
mark(tt) → tt
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
mark(zeros) → zerosActive
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(N, L)) → MARK(L)
MARK(length(x1)) → LENGTHACTIVE(mark(x1))
MARK(length(x1)) → MARK(x1)
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
MARK(take(x1, x2)) → TAKEACTIVE(mark(x1), mark(x2))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(N, L)) → MARK(L)
MARK(length(x1)) → MARK(x1)
MARK(length(x1)) → LENGTHACTIVE(mark(x1))
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(length(x1)) → MARK(x1)
MARK(length(x1)) → LENGTHACTIVE(mark(x1))
Used ordering: Polynomial interpretation [25]:
LENGTHACTIVE(cons(N, L)) → MARK(L)
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
POL(0) = 0
POL(LENGTHACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(and(x1, x2)) = 1 + x2
POL(andActive(x1, x2)) = 1 + x2
POL(cons(x1, x2)) = x1 + x2
POL(length(x1)) = 1 + x1
POL(lengthActive(x1)) = 1 + x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = x1
POL(take(x1, x2)) = x2
POL(takeActive(x1, x2)) = x2
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
mark(s(x1)) → s(mark(x1))
mark(nil) → nil
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
zerosActive → cons(0, zeros)
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
mark(0) → 0
mark(tt) → tt
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
mark(zeros) → zerosActive
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(N, L)) → MARK(L)
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Trivial-Transformation
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Trivial-Transformation
MARK(s(x1)) → MARK(x1)
MARK(cons(x1, x2)) → MARK(x1)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ Trivial-Transformation
LENGTHACTIVE(cons(N, L)) → LENGTHACTIVE(mark(L))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(zerosActive)
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
LENGTHACTIVE(cons(y0, s(x0))) → LENGTHACTIVE(s(mark(x0)))
LENGTHACTIVE(cons(y0, length(x0))) → LENGTHACTIVE(lengthActive(mark(x0)))
LENGTHACTIVE(cons(y0, and(x0, x1))) → LENGTHACTIVE(andActive(mark(x0), x1))
LENGTHACTIVE(cons(y0, nil)) → LENGTHACTIVE(nil)
LENGTHACTIVE(cons(y0, 0)) → LENGTHACTIVE(0)
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
LENGTHACTIVE(cons(y0, tt)) → LENGTHACTIVE(tt)
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(zerosActive)
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
LENGTHACTIVE(cons(y0, s(x0))) → LENGTHACTIVE(s(mark(x0)))
LENGTHACTIVE(cons(y0, length(x0))) → LENGTHACTIVE(lengthActive(mark(x0)))
LENGTHACTIVE(cons(y0, and(x0, x1))) → LENGTHACTIVE(andActive(mark(x0), x1))
LENGTHACTIVE(cons(y0, nil)) → LENGTHACTIVE(nil)
LENGTHACTIVE(cons(y0, 0)) → LENGTHACTIVE(0)
LENGTHACTIVE(cons(y0, tt)) → LENGTHACTIVE(tt)
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(zerosActive)
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
LENGTHACTIVE(cons(y0, length(x0))) → LENGTHACTIVE(lengthActive(mark(x0)))
LENGTHACTIVE(cons(y0, and(x0, x1))) → LENGTHACTIVE(andActive(mark(x0), x1))
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(cons(0, zeros))
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(zeros)
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
LENGTHACTIVE(cons(y0, length(x0))) → LENGTHACTIVE(lengthActive(mark(x0)))
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(cons(0, zeros))
LENGTHACTIVE(cons(y0, and(x0, x1))) → LENGTHACTIVE(andActive(mark(x0), x1))
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(zeros)
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(cons(0, zeros))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, zeros)) → LENGTHACTIVE(cons(0, zeros))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
LENGTHACTIVE(cons(y0, length(x0))) → LENGTHACTIVE(lengthActive(mark(x0)))
LENGTHACTIVE(cons(y0, and(x0, x1))) → LENGTHACTIVE(andActive(mark(x0), x1))
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LENGTHACTIVE(cons(y0, length(x0))) → LENGTHACTIVE(lengthActive(mark(x0)))
LENGTHACTIVE(cons(y0, and(x0, x1))) → LENGTHACTIVE(andActive(mark(x0), x1))
Used ordering: Polynomial interpretation [25]:
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
POL(0) = 0
POL(LENGTHACTIVE(x1)) = x1
POL(and(x1, x2)) = 0
POL(andActive(x1, x2)) = 0
POL(cons(x1, x2)) = 1
POL(length(x1)) = 0
POL(lengthActive(x1)) = 0
POL(mark(x1)) = x1
POL(nil) = 0
POL(s(x1)) = 0
POL(take(x1, x2)) = 1
POL(takeActive(x1, x2)) = 1
POL(tt) = 0
POL(zeros) = 0
POL(zerosActive) = 0
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
mark(s(x1)) → s(mark(x1))
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(and(x1, x2)) → andActive(mark(x1), x2)
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LENGTHACTIVE(cons(y0, cons(x0, x1))) → LENGTHACTIVE(cons(mark(x0), x1))
Used ordering: Polynomial interpretation [25]:
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
POL(0) = 0
POL(LENGTHACTIVE(x1)) = x1
POL(and(x1, x2)) = 1
POL(andActive(x1, x2)) = 1
POL(cons(x1, x2)) = 1 + x2
POL(length(x1)) = 0
POL(lengthActive(x1)) = 0
POL(mark(x1)) = 1 + x1
POL(nil) = 1
POL(s(x1)) = 0
POL(take(x1, x2)) = x2
POL(takeActive(x1, x2)) = x2
POL(tt) = 1
POL(zeros) = 0
POL(zerosActive) = 1
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
mark(s(x1)) → s(mark(x1))
mark(nil) → nil
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
zerosActive → cons(0, zeros)
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
mark(0) → 0
mark(tt) → tt
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
mark(zeros) → zerosActive
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ Narrowing
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ Trivial-Transformation
LENGTHACTIVE(cons(y0, take(x0, x1))) → LENGTHACTIVE(takeActive(mark(x0), mark(x1)))
mark(zeros) → zerosActive
zerosActive → zeros
mark(and(x1, x2)) → andActive(mark(x1), x2)
andActive(x1, x2) → and(x1, x2)
mark(length(x1)) → lengthActive(mark(x1))
lengthActive(x1) → length(x1)
mark(take(x1, x2)) → takeActive(mark(x1), mark(x2))
takeActive(x1, x2) → take(x1, x2)
mark(cons(x1, x2)) → cons(mark(x1), x2)
mark(0) → 0
mark(tt) → tt
mark(nil) → nil
mark(s(x1)) → s(mark(x1))
zerosActive → cons(0, zeros)
lengthActive(cons(N, L)) → s(lengthActive(mark(L)))
takeActive(s(M), cons(N, IL)) → cons(mark(N), take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros → cons(0, zeros)
and(tt, X) → X
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
Used ordering:
and(tt, X) → X
POL(0) = 0
POL(and(x1, x2)) = 1 + x1 + x2
POL(cons(x1, x2)) = 2·x1 + 2·x2
POL(length(x1)) = 2·x1
POL(nil) = 0
POL(s(x1)) = 2·x1
POL(take(x1, x2)) = 2·x1 + 2·x2
POL(tt) = 1
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
zeros → cons(0, zeros)
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros → cons(0, zeros)
length(nil) → 0
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
Used ordering:
length(nil) → 0
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = 2·x1
POL(nil) = 2
POL(s(x1)) = x1
POL(take(x1, x2)) = 2 + 2·x1 + x2
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(0, IL) → nil
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
Used ordering:
take(0, IL) → nil
POL(0) = 0
POL(cons(x1, x2)) = 2·x1 + x2
POL(length(x1)) = 2·x1
POL(nil) = 1
POL(s(x1)) = x1
POL(take(x1, x2)) = 2 + 2·x1 + 2·x2
POL(zeros) = 0
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
LENGTH(cons(N, L)) → LENGTH(L)
ZEROS → ZEROS
TAKE(s(M), cons(N, IL)) → TAKE(M, IL)
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
LENGTH(cons(N, L)) → LENGTH(L)
ZEROS → ZEROS
TAKE(s(M), cons(N, IL)) → TAKE(M, IL)
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
TAKE(s(M), cons(N, IL)) → TAKE(M, IL)
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
TAKE(s(M), cons(N, IL)) → TAKE(M, IL)
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
TAKE(s(M), cons(N, IL)) → TAKE(M, IL)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
LENGTH(cons(N, L)) → LENGTH(L)
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
LENGTH(cons(N, L)) → LENGTH(L)
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
LENGTH(cons(N, L)) → LENGTH(L)
From the DPs we obtained the following set of size-change graphs:
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
ZEROS → ZEROS
zeros → cons(0, zeros)
length(cons(N, L)) → s(length(L))
take(s(M), cons(N, IL)) → cons(N, take(M, IL))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
ZEROS → ZEROS
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
zeros
length(cons(x0, x1))
take(s(x0), cons(x1, x2))
↳ CSR
↳ CSRInnermostProof
↳ Incomplete Giesl Middeldorp-Transformation
↳ Trivial-Transformation
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
ZEROS → ZEROS